iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
Software Development

我們與Maven的距離系列 第 29

Day28 - Maven Wrapper

  • 分享至 

  • xImage
  •  

前言

不知道你有沒有在你的環境執行Maven Build成功但是你的同事不成功的案例,最後你們才發現原來「你的Maven不是我的Maven」這樣的問題又或是你的環境沒有Maven,為了避免像這樣的問題Maven提供Maven Wrapper這樣的解決方案,今天就讓我們來瞧瞧吧

何謂Maven Wrapper

Wrapper英譯是包裝紙的意思,在程式裡面裡的意思是包裹器的意思,把Maven包裝在裡面,透過什麼呢?它透過一個執行腳本幫我們完成此事,它可以做到執行腳本就幫我們下載指定的Maven版本幫我們執行Maven命令,確保在不同環境下能用一樣的方式執行它,讓CI/CD環境執行或是您的同事執行都是用同樣的Maven

Maven Wrapper 的核心價值

  • 開發者無須下載Maven
  • 專案統一Maven版本進行構建
  • 於CI/CD環境執行與開發者相同Maven版本進行構建

Maven Wrapper Quickstart

你只要在你的專案裡面下指令mvn wrapper:wrapper這樣就完成囉再來你原先下的mvn指令就可以透過mvnw來完成,什麼!!太簡單了吧

執行完wrapper指令專案會產生mvnw與mvnw.bat檔案前者供linux使用,後者則為windows
https://ithelp.ithome.com.tw/upload/images/20251013/20128084FByJkqyO2E.png
執行mvnw compile順利執行
https://ithelp.ithome.com.tw/upload/images/20251013/20128084T2m9mvdYlo.png

Maven Wrapper 檔案結構

當專案加入 Maven Wrapper 後,會產生以下檔案:

project-root/
├── mvnw                    (Unix/Linux/Mac 執行腳本)
├── mvnw.cmd               (Windows 執行腳本)
├── .mvn/
│   └── wrapper/
│       ├── maven-wrapper.jar        (Wrapper 執行程式) 
│       └── maven-wrapper.properties (Wrapper 配置檔)
├── pom.xml
└── src/

首次執行流程

  1. 執行 ./mvnw 命令
  2. Wrapper 檢查本地是否已有指定版本的 Maven
  3. 如果沒有,自動從指定 URL 下載 Maven (參照.mvn/maven-wrapper.properties)
  4. 將下載的 Maven 解壓到 ~/.m2/wrapper/dists/ 目錄
  5. 使用下載的 Maven 執行指定命令

常用指令

# 為現有專案加入 Maven Wrapper
mvn wrapper:wrapper

# 指定特定的 Maven 版本
mvn wrapper:wrapper -Dmaven=3.9.8

小結

本日簡單介紹Maven Wrapper使用方式與它的核心理念,記得只是命令是由mvn轉為mvnw而已

Reference


上一篇
Day27 - CI/CD Pipelines with Maven, Gitea, and Jenkins
系列文
我們與Maven的距離29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言